-
Notifications
You must be signed in to change notification settings - Fork 25
Grafi 56/improve async call and integration tests #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR improves the async workflow execution through better quiescence detection and refactors integration test infrastructure for improved reporting and maintainability.
Key changes:
- Enhanced
AsyncNodeTrackerwith message-level tracking for accurate quiescence detection - Simplified
AsyncOutputQueuetermination logic by delegating quiescence checks to the tracker - Refactored integration test runners to support programmatic execution with structured result reporting
Reviewed changes
Copilot reviewed 26 out of 27 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml, uv.lock |
Version bump from 0.0.33 to 0.0.34 |
grafi/workflows/impl/async_node_tracker.py |
Major refactor adding message tracking (published/committed) for accurate quiescence detection; added force stop capability |
grafi/workflows/impl/async_output_queue.py |
Simplified termination logic by delegating quiescence detection to tracker; improved listener implementation |
grafi/workflows/impl/event_driven_workflow.py |
Integrated message tracking into workflow orchestration; added force stop support |
grafi/workflows/impl/utils.py |
Added optional tracker parameter to publish_events for message tracking |
tests_integration/run_all.py |
Refactored to load runners as modules instead of subprocess calls; improved result reporting |
tests_integration/*/run_*.py (12 files) |
Added collect parameter for programmatic execution; improved stdout encoding handling; structured result format |
tests/workflow/test_async_node_tracker.py |
Updated tests for new quiescence detection model |
tests/workflow/test_async_output_queue.py |
Comprehensive new tests for race condition fixes and quiescence behavior |
tests/assistants/test_assistant.py |
Added 8-node DAG workflow test validating complex fan-out/fan-in patterns |
tests_integration/hith_assistant/kyc_assistant_example.py |
Fixed to pass consumed_event_ids for proper event chaining |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1: improved async call, safer and more stable
2: improve integration tests